Generally, an enterprise multi-agent software system is used to denote a particular arrangement of data structures, algorithms, and control flows, which agent/systems (e.g. computer programs) use to decide what task to execute. Agent systems may be characterized by the nature of their decision-making. Example types of software agent systems include logical-based systems in which decision making is achieved via logical deduction, reactive systems in which decision making is achieved via a mapping from perception to action, belief-desire-intention systems in which decision making is viewed as practical reasoning of the type that we perform every day in furtherance of our goals, and layered multi-agent systems in which decision making is realized via the interaction of a number of task accomplishing software layers.